package cn.t.request;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 新增设备入参
 */
@Data
public class CreateDeviceReq {
    /**
     * 设备名称
     */
    @NotBlank(message = "设备名称不能为空")
    private String deviceName;
    /**
     * 设备信息
     */
    @NotEmpty(message = "请添加设备")
    private List<DeviceInfo> devices;
    /**
     * 公司ID
     */
    @NotNull(message = "公司ID不能为空")
    private Long firmId;
    /**
     * 省id
     */
    @NotNull(message = "请选择省")
    private String provinceId;
    /**
     * 市id
     */
    @NotNull(message = "请选择市")
    private String cityId;
    /**
     * 区id
     */
    @NotNull(message = "请选择区")
    private String countyId;
    /**
     * 详细地址
     */
    private String deviceAddr;

    @Data
    public static class DeviceInfo {
        /**
         * 设备类型
         */
        @NotNull(message = "设备类型不能为空")
        private Integer deviceType;
        /**
         * 行
         */
        @NotNull(message = "行不能为空")
        private Integer lineNum;
        /**
         * 列
         */
        @NotNull(message = "列不能为空")
        private Integer columnNum;
        /**
         * 控制板编号
         */
        @NotNull(message = "控制板编号不能为空")
        private Integer ctrlBoardNo;
        /**
         * 是否主柜 1 是， 0 否
         */
        @NotNull(message = "是否主柜标识不能为空")
        private Integer isMaster;

        /**
         * 旋转柜货道信息
         */
        private List<RotatingCabinetInfo> rotatingCabinets;
    }

    @Data
    public static class RotatingCabinetInfo {

        /**
         * 层数(第几层)
         */
        private Integer storeyNum;

        /**
         * 货道数量
         */
        private Integer cargowayNum;

    }

}
